This above is wrong: setting random_state=0 in each permutation will get you exactly the same permutations, and thus much less entropy than you believe you have.

The right pattern is a bit tricky:

1. The permuted_ols needs to take a random_state argument (it already does, but it's not used), that gets passed to check_random_state

2. Each parallel processing code indeed needs to be seeded (because elsewhere the fork-based behavior will give the same stream of parallel computing) but in the following way:

<pre>
  random_state=random_state.random_integers(2**32)
</pre>

This warrants both high entropy, and controllable random number generation stream.