Segmentation Fault in KMeans on OSX

### Describe the bug

Hi when I run this code

```
import numpy as np      
from sklearn.cluster import KMeans

X_train = np.random.RandomState(0).random((10, 2))
kmeans = KMeans(n_clusters=3, random_state=0).fit(X_train)
```

EDIT by @ogrisel: inserted `.RandomState(0)` in the above snippet to make the reproducer deterministic.

I get this error

`zsh: segmentation fault  python debugging.py`

This can't be a memory error, it's only a 10x2 matrix, any idea what's wrong?

Python 3.10.4
Anaconda installation
>>> sklearn.__version__
'1.0.2'
>>> numpy.__version__
'1.22.3'


### Steps/Code to Reproduce


```
import numpy as np      
from sklearn.cluster import KMeans

X_train = np.random.random((10, 2))
kmeans = KMeans(n_clusters=3, random_state=0).fit(X_train)
```

### Expected Results

KMeans clusters

### Actual Results

`zsh: segmentation fault  python debugging.py`

This can't be a memory error, it's only a 10x2 matrix, any idea what's wrong?


### Versions

```shell
Python 3.10.4
Anaconda installation
>>> sklearn.__version__
'1.0.2'
>>> numpy.__version__
'1.22.3'
```

COMMENT:
Thanks @ogrisel and @jjerphan. I can confirm that using `conda-forge` channel for numpy, scipy and scikit-learn resolves the issue. Should this be explicitly mentioned in the documentation? Currently, the [installation instructions](https://scikit-learn.org/stable/install.html#installing-the-latest-release) say:

> If you have not installed NumPy or SciPy yet, you can also install these using conda or pip. When using pip, please ensure that binary wheels are used, and NumPy and SciPy are not recompiled from source, which can happen when using particular configurations of operating system and hardware (such as Linux on a Raspberry Pi).

You could add something like this:

_When using conda on MacOS (only MacOS and only on Intel Macs?), NumPy and SciPy must be installed from the same channel as scikit-learn (`conda-forge`) to avoid compatibility issues between Intel OpenMP and LLVM OpenMP._

## Solutions

Here are two options for those facing this issue:

### Option 1: Use `conda-forge` as the only channel (not recommended)

```yaml
name: test-env
channels:
  - conda-forge
dependencies:
  - python=3.10
  - scikit-learn==1.3.2
 # add other packages as needed
```

Note that any other packages you add to the environment will have to be available in `conga-forge` channel, unless explicitly specified otherwise. This is why this solution is probably not recommended for most scenarios.

### Option 2: Use `conda-forge` for scikit-learn and its dependencies (recommended)

```yaml
name: test-env2
channels:
  - defaults
  - conda-forge
  # add any other channels as needed
dependencies:
  - python=3.10
  - conda-forge::numpy
  - conda-forge::scipy
  - conda-forge::scikit-learn==1.3.2
 # add other packages as needed
```

Note that, unlike in Option 1, other packages can be installed from different sources you specify under `channels` (assuming they are all compatible with one another). So this is probably be the recommended solution.

## Dependencies

The above solutions produce different dependencies (at least on an Intel Mac), but both have been tested to work with `Kmeans` as expected. Below is the output of `sklearn.show_versions()`.

### Option 1

```
System:
    python: 3.10.13 | packaged by conda-forge | (main, Oct 26 2023, 18:09:20) [Clang 16.0.6 ]
executable: /Users/alinacherkas/anaconda3/envs/test-env/bin/python
   machine: macOS-14.1-x86_64-i386-64bit

Python dependencies:
      sklearn: 1.3.2
          pip: 23.3.1
   setuptools: 68.2.2
        numpy: 1.26.0
        scipy: 1.11.3
       Cython: None
       pandas: None
   matplotlib: None
       joblib: 1.3.2
threadpoolctl: 3.2.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
    num_threads: 8
         prefix: libopenblas
       filepath: /Users/alinacherkas/anaconda3/envs/test-env/lib/libopenblasp-r0.3.24.dylib
        version: 0.3.24
threading_layer: openmp
   architecture: Haswell

       user_api: openmp
   internal_api: openmp
    num_threads: 8
         prefix: libomp
       filepath: /Users/alinacherkas/anaconda3/envs/test-env/lib/libomp.dylib
        version: None
```

### Option 2

```
System:
    python: 3.10.13 (main, Sep 11 2023, 08:39:02) [Clang 14.0.6 ]
executable: /Users/alinacherkas/anaconda3/envs/test-env2/bin/python
   machine: macOS-10.16-x86_64-i386-64bit

Python dependencies:
      sklearn: 1.3.2
          pip: 23.3
   setuptools: 68.0.0
        numpy: 1.26.0
        scipy: 1.11.3
       Cython: None
       pandas: None
   matplotlib: None
       joblib: 1.2.0
threadpoolctl: 2.2.0

Built with OpenMP: True

threadpoolctl info:
       filepath: /Users/alinacherkas/anaconda3/envs/test-env2/lib/libopenblasp-r0.3.21.dylib
         prefix: libopenblas
       user_api: blas
   internal_api: openblas
        version: 0.3.21
    num_threads: 4
threading_layer: pthreads
   architecture: Haswell

       filepath: /Users/alinacherkas/anaconda3/envs/test-env2/lib/libomp.dylib
         prefix: libomp
       user_api: openmp
   internal_api: openmp
        version: None
    num_threads: 8
```

Labels: Bug, Documentation, help wanted, module:cluster, OS:macOS