MLPClassifier: Cannot turn off convergence warning without side effects

### Describe the bug

As [described](https://github.com/scikit-learn/scikit-learn/discussions/27062) by @qrdlgit, it can have sense to use MLPClassifier with small `max_iter` that are always reached. In this case, I get
```
ConvergenceWarning: lbfgs failed to converge (status=1): 
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
```
The bug is that I have no side-effect free way to disable this convergence warning except for the case of `n_jobs=1`, as described [here](https://github.com/scikit-learn/scikit-learn/discussions/27062#discussioncomment-7145084).


### Steps/Code to Reproduce

Remove the `ignore_warnings` here: https://github.com/scikit-learn/scikit-learn/blob/de29f3f22db6e017aef9dc77935d8ef43d2d7b44/sklearn/neural_network/tests/test_mlp.py#L70

### Expected Results

There should be a way to tell the MLPClassifier not to show this convergence warning.

### Actual Results

I cannot suppress the warnings without changing environment variables.

### Versions

<details>
```shell
System:
    python: 3.11.1 (tags/v3.11.1:a7a450f, Dec  6 2022, 19:58:39) [MSC v.1934 64 bit (AMD64)]
executable: [***]\WPy64-31110\python-3.11.1.amd64\python.exe
   machine: Windows-10-10.0.19045-SP0

Python dependencies:
      sklearn: 1.2.2
          pip: 22.3.1
   setuptools: 65.5.0
        numpy: 1.24.3
        scipy: 1.10.1
       Cython: None
       pandas: 2.0.1
   matplotlib: 3.7.1
       joblib: 1.2.0
threadpoolctl: 3.1.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: [***]\WPy64-31110\python-3.11.1.amd64\Lib\site-packages\numpy\.libs\libopenblas64__v0.3.21-gcc_10_3_0.dll
        version: 0.3.21
threading_layer: pthreads
   architecture: Haswell
    num_threads: 8

       user_api: openmp
   internal_api: openmp
         prefix: vcomp
       filepath: [***]\WPy64-31110\python-3.11.1.amd64\Lib\site-packages\sklearn\.libs\vcomp140.dll
        version: None
    num_threads: 8

       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: [***]\WPy64-31110\python-3.11.1.amd64\Lib\site-packages\scipy.libs\libopenblas-802f9ed1179cb9c9b03d67ff79f48187.dll
        version: 0.3.18
threading_layer: pthreads
   architecture: Haswell
    num_threads: 8
```
</details>

COMMENT:
The reason I am not (yet) convinced that this is needed is that there is already a system to influence the visibility of warnings. The filters in the `warning` module. If we start adding "enable/disable warnings" things to scikit-learn itself it seems likely that we will end up with a system like what the warnings module has.

This also means that whether or not limiting the number of iterations is a standard thing to do or an obscure edge case doesn't come into the decision for me.

For your case of "what if the MLP is in an ensemble?" aka I want some `ConvergenceWarnings` but not others, I think you can still do this with something like:
```python
import warnings
from sklearn.exceptions import ConvergenceWarning
from sklearn.neural_network import MLPClassifier
from sklearn.datasets import make_classification

warnings.filterwarnings('ignore', category=ConvergenceWarning, module='sklearn.neural_network')

X, y = make_classification(random_state=42, n_samples=5000, n_features=50)

class Ensemble:
    def fit(self, X, y):
        mlp = MLPClassifier(hidden_layer_sizes=10, max_iter=3, random_state=1)
        mlp.fit(X, y)
       # we want to see this warning
        warnings.warn("ensemble convergence warning", category=ConvergenceWarning)
        return self

ens = Ensemble()
ens.fit(X, y)
# should show the "ensemble convergence warning" but not the MLP convergence warning
```

For me the first answer to "I want to control which warnings are shown and which not" is "use the filter system from the warnings module". Only once that doesn't work anymore should we think about something new.

Labels: Bug, Needs Triage