Using python multiprocessing with different random seed for each process
Solution 1:
Just thought I would add an actual answer to make it clear for others.
Quoting the answer from aix in this question:
What happens is that on Unix every worker process inherits the same state of the random number generator from the parent process. This is why they generate identical pseudo-random sequences.
Use the random.seed() method (or the scipy/numpy equivalent) to set the seed properly. See also this numpy thread.
Solution 2:
This is an unsolved problem. Try to generate a unique seed for each process. You can add below code to beginning of your function to overcome the issue.
np.random.seed((os.getpid() * int(time.time())) % 123456789)