Почитайто про routing. Надо эти задачи отправить в отдельную очередь и настроить только один воркер, обрабатывающий эту очередь, а в нем разрешить тольо один поток. Это единственный способ, если вы хоите использовать только celery.
Если нужна еще надежность, нужна сторонная реализация многомашинного lock'а, задачу выполнять под ним. Также, как и в первом случае лучше настроить отдельную очередь но уже с несколькими воркерами.