thankyou @wezzo!
I had a similar issue with parallel execution. The solution posted above worked as a charm.
After converting to exe, main was called as many times the workers I had defined.
What worked for me is calling : 'freeze_support()'
right after 'main'
from multiprocessing import Process, freeze_support
if __name__ == "__main__":
freeze_support()