ConvergenceWarnings cannot be turned off

Hi, I'm unable to turn off convergence warnings from `GraphicalLassoCV`.

I've tried most of the solutions from, and none of them worked (see below for actual implementations):
https://stackoverflow.com/questions/879173/how-to-ignore-deprecation-warnings-in-python
https://stackoverflow.com/questions/32612180/eliminating-warnings-from-scikit-learn/33812427#33812427
https://stackoverflow.com/questions/53968004/how-to-silence-all-sklearn-warning
https://stackoverflow.com/questions/14463277/how-to-disable-python-warnings

Contrary to what the designers of the sklearn's exceptions must have thought when it was implemented, some of us actually use stdout to log important information of the host program for diagnostics purposes.  Flooding it with garbage that cannot be turned off, as is in the case with cross-validation, is not ok. 

To briefly speak to the severity of the issue, the above sklearn-specific questions relating to suppressing warnings have been viewed ~500K times with combined ~400 upvotes, and dates back 7 years. 

I've tried the following (`n_jobs` parameter does not appear to affect the result):

```py
from sklearn.covariance import GraphicalLassoCV
import warnings
warnings.filterwarnings("ignore", category=ConvergenceWarning)

model = GraphicalLassoCV(n_jobs=4)
model = model.fit(data)
```

```py
from sklearn.covariance import GraphicalLassoCV
import warnings
warnings.filterwarnings(action='ignore')

model = GraphicalLassoCV(n_jobs=4)
model = model.fit(data)
```

```py
import warnings
with warnings.catch_warnings():
    warnings.simplefilter("ignore", ConvergenceWarning)

    model = GraphicalLassoCV(n_jobs=4)
    model = model.fit(data)
```

```py
from sklearn.covariance import GraphicalLassoCV
def warn(*args, **kwargs):
    pass
import warnings
warnings.warn = warn

model = GraphicalLassoCV(n_jobs=4)
model = model.fit(data)
```

```py
import contextlib
import os, sys

@contextlib.contextmanager
def suppress_stdout():
    with open(os.devnull, 'w') as fnull:
        old_stdout = sys.stdout
        sys.stdout = fnull
        try:
            yield
        finally:
            sys.stdout = old_stdout

with suppress_stdout():
    model = GraphicalLassoCV(n_jobs=4)
    model = model.fit(data)
```

```py
import logging
logging.captureWarnings(True)

logging.getLogger("py.warnings").setLevel(logging.ERROR)

model = GraphicalLassoCV(n_jobs=4)
model = model.fit(data)
```

COMMENT:
I agree that this seems like a joblib issue. I was thinking of just adding the stop-gap as suggested under Steve's comment that "free-threading" is in the works: 

>  >We could add an option to disable convergence warnings (or warning of a given category) in the global config and define our own warn function that would check the global config to trigger or not the warning.

> Good point indeed! We could indeed, whether we should is another question, since free-threading is coming 🤞 and there is some kind of not so great but at least existing work-around 😰 ...

> Edit: thinking about it more, the config-based solution, may be a reasonable stop-gap solution, I guess someone maybe should have a closer look? Maybe an issue for a sprint? Personally I am not planning to look at it in the near-future. I am going to set the label "Help Wanted"

I am unclear about "free threading" and how this would solve the issue, but agree that as a stop-gap this works. Can someone explain what is in the works for "free threading"?

Labels: Moderate, help wanted