Windows free-threaded Python ValueError: concurrent send_bytes() calls are not supported

Noticed in [build log](https://github.com/scikit-learn/scikit-learn/actions/runs/13233133978/job/36933421850#step:5:2813). An automated issue was opened in https://github.com/scikit-learn/scikit-learn/issues/30801 and closed the next day.

This needs some investigation to figure out whether this can be reproduced locally and whether this is actually Windows-specific.

This may be a joblib issue as well.

```
================================== FAILURES ===================================
  _____________________________ test_absolute_error _____________________________
  
      def test_absolute_error():
          # For coverage only.
          X, y = make_regression(n_samples=500, random_state=0)
          gbdt = HistGradientBoostingRegressor(loss="absolute_error", random_state=0)
  >       gbdt.fit(X, y)
  
  ..\venv-test\Lib\site-packages\sklearn\ensemble\_hist_gradient_boosting\tests\test_gradient_boosting.py:225: 
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  ..\venv-test\Lib\site-packages\sklearn\base.py:1389: in wrapper
      return fit_method(estimator, *args, **kwargs)
  ..\venv-test\Lib\site-packages\sklearn\ensemble\_hist_gradient_boosting\gradient_boosting.py:663: in fit
      X_binned_train = self._bin_data(X_train, is_training_data=True)
  ..\venv-test\Lib\site-packages\sklearn\ensemble\_hist_gradient_boosting\gradient_boosting.py:1178: in _bin_data
      X_binned = self._bin_mapper.fit_transform(X)  # F-aligned array
  ..\venv-test\Lib\site-packages\sklearn\utils\_set_output.py:319: in wrapped
      data_to_wrap = f(self, X, *args, **kwargs)
  ..\venv-test\Lib\site-packages\sklearn\base.py:918: in fit_transform
      return self.fit(X, **fit_params).transform(X)
  ..\venv-test\Lib\site-packages\sklearn\ensemble\_hist_gradient_boosting\binning.py:234: in fit
      non_cat_thresholds = Parallel(n_jobs=self.n_threads, backend="threading")(
  ..\venv-test\Lib\site-packages\sklearn\utils\parallel.py:82: in __call__
      return super().__call__(iterable_with_config_and_warning_filters)
  ..\venv-test\Lib\site-packages\joblib\parallel.py:2007: in __call__
      return output if self.return_generator else list(output)
  ..\venv-test\Lib\site-packages\joblib\parallel.py:1711: in _get_outputs
      self._terminate_and_reset()
  ..\venv-test\Lib\site-packages\joblib\parallel.py:1386: in _terminate_and_reset
      self._backend.terminate()
  ..\venv-test\Lib\site-packages\joblib\_parallel_backends.py:262: in terminate
      self._pool.close()
  ..\..\..\..\pypa\cibuildwheel\Cache\nuget-cpython\python-freethreaded.3.13.0\tools\Lib\multiprocessing\pool.py:652: in close
      self._change_notifier.put(None)
  ..\..\..\..\pypa\cibuildwheel\Cache\nuget-cpython\python-freethreaded.3.13.0\tools\Lib\multiprocessing\queues.py:394: in put
      self._writer.send_bytes(obj)
  ..\..\..\..\pypa\cibuildwheel\Cache\nuget-cpython\python-freethreaded.3.13.0\tools\Lib\multiprocessing\connection.py:200: in send_bytes
      self._send_bytes(m[offset:offset + size])
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  
  self = <multiprocessing.connection.PipeConnection object at 0x00000243F43267C0>
  buf = <memory at 0x00000243F4C65AC0>
  
      def _send_bytes(self, buf):
          if self._send_ov is not None:
              # A connection should only be used by a single thread
  >           raise ValueError("concurrent send_bytes() calls "
                               "are not supported")
  E           ValueError: concurrent send_bytes() calls are not supported
  
  ..\..\..\..\pypa\cibuildwheel\Cache\nuget-cpython\python-freethreaded.3.13.0\tools\Lib\multiprocessing\connection.py:287: ValueError
```

COMMENT:
Trying to summarize a bit the issues we have seen in the wheels CI so far https://github.com/scikit-learn/scikit-learn/issues/32393.

- October 21 Windows arm cp314t https://github.com/scikit-learn/scikit-learn/issues/32393#issuecomment-3425517186
- October 22 Windows arm cp314t https://github.com/scikit-learn/scikit-learn/issues/32393#issuecomment-3430931106
- November 6 Windows arm cp314t https://github.com/scikit-learn/scikit-learn/issues/32393#issuecomment-3497876088
- November 21 Windows amd cp313t https://github.com/scikit-learn/scikit-learn/issues/32393#issuecomment-3561522363
- November 22 Windows arm cp313t https://github.com/scikit-learn/scikit-learn/issues/32393#issuecomment-3567502025
- November 27 Windows arm cp314t https://github.com/scikit-learn/scikit-learn/issues/32393#issuecomment-3584286692
- November 29 Windows arm cp314t https://github.com/scikit-learn/scikit-learn/issues/32393#issuecomment-3592306441
- December 1 Windows arm cp313t https://github.com/scikit-learn/scikit-learn/issues/32393#issuecomment-3596283305
- December 3 Windows arm cp314t https://github.com/scikit-learn/scikit-learn/issues/32393#issuecomment-3608647938

Labels: Bug, Needs Investigation, free-threading, OS:Windows