def init(sem):
    global semaphore
semaphore = sem
if __name__ == '__main__':
    sem = multiprocessing.Semaphore()
with multiprocessing.Pool(initializer=init, initargs=(sem,)) as p:
    results = p.map(do_work, payloads)
Совместное использование семафора с функцией с использованием многопроцессорной обработки Python