Vous devez mettre tout le code qui utilise le multitraitement dans sa propre fonction. Cela l'empêche de lancer récursivement de nouveaux pools lorsque le multitraitement réimporte votre module dans des processus séparés :
def parse_file(filename):
...
def main():
pool = mp.Pool(processes=8)
pool.map(parse_file, ['my_dir/' + filename for filename in os.listdir("my_dir")])
if __name__ == '__main__:
main()
Voir la documentation sur s'assurer que votre module est importable , ainsi que les conseils pour l'exécution sous Windows(tm)