This is the only pattern you can implement to avoid zero-memory copy.

However you can only implement it outside of the Parallel call: here the trick works because `samples` is a local variable and nobody else has a reference on  it so it can be garbage collected before doing the fork. If we were to put that into the `Parallel` code, the caller would still have a reference to the array hence `gc.collect` would not do anything.