class_docstr: Use mlflow to implement ExpManager.
code: def create_exp(self, experiment_name: Optional[Text] = None):
      assert experiment_name is not None
      # init experiment
      try:
          experiment_id = self.client.create_experiment(experiment_name)
      except MlflowException as e:
          if e.error_code == ErrorCode.Name(RESOURCE_ALREADY_EXISTS):
              raise ExpAlreadyExistError() from e
          raise e
  
      return MLflowExperiment(experiment_id, experiment_name, self.uri)
  
imports: from urllib.parse import urlparse
  import mlflow
  from filelock import FileLock
  from mlflow.exceptions import MlflowException, RESOURCE_ALREADY_EXISTS, ErrorCode
  from mlflow.entities import ViewType
  import os
  from typing import Optional, Text
  from .exp import MLflowExperiment, Experiment
  from ..config import C
  from .recorder import Recorder
  from ..log import get_module_logger
  from ..utils.exceptions import ExpAlreadyExistError
label_desc: Use image node_id 4 for calling the MLflowExpManager obj's underlying member method code with example usage: obj.create_exp(experiment_name) and returns: MLflowExperiment