docstr: Initial UserManager(), get predict date and trade date
  Parameters
  ----------
      client: str
          The qlib client config file(.yaml)
      path : str
          Path to save user account.
      date : str (YYYY-MM-DD)
          Trade date, when the generated order list will be traded.
  Return
  ----------
      um: UserManager()
      pred_date: pd.Timestamp
      trade_date: pd.Timestamp
docstr_tok: ["Initial","UserManager","(",")",",","get","predict","date","and","trade","date","Parameters","--","--","--","--","--","client",":","str","The","qlib","client","config","file","(",".yaml",")","path",":","str","Path","to","save","user","account",".","date",":","str","(","YYYY-MM-DD",")","Trade","date",",","when","the","generated","order","list","will","be","traded",".","Return","--","--","--","--","--","um",":","UserManager","(",")","pred_date",":","pd.Timestamp","trade_date",":","pd.Timestamp"]
code: def init(client, path, date=None):
      """Initial UserManager(), get predict date and trade date
      Parameters
      ----------
          client: str
              The qlib client config file(.yaml)
          path : str
              Path to save user account.
          date : str (YYYY-MM-DD)
              Trade date, when the generated order list will be traded.
      Return
      ----------
          um: UserManager()
          pred_date: pd.Timestamp
          trade_date: pd.Timestamp
      """
      qlib.init_from_yaml_conf(client)
      um = UserManager(user_data_path=pathlib.Path(path))
      um.load_users()
      if not date:
          trade_date, pred_date = None, None
      else:
          trade_date = pd.Timestamp(date)
          if not is_tradable_date(trade_date):
              raise ValueError(
                  "trade date is not tradable date".format(
                      trade_date.date()
                  )
              )
          pred_date = get_pre_trading_date(trade_date, future=True)
      return um, pred_date, trade_date
  
imports: import fire
  import pandas
  import pathlib
  import qlib
  import logging
  from ...data import D
  from ...log import get_module_logger
  from ...utils import get_pre_trading_date, is_tradable_date
  from ..evaluate import risk_analysis
  from ..backtest.backtest import update_account
  from .manager import UserManager
  from .utils import prepare
  from .utils import create_user_folder
  from .executor import load_order_list, save_order_list
  from .executor import SimulatorExecutor
  from .executor import save_score_series, load_score_series
label_desc: Use image node_id 2 for calling the Operator obj's underlying member method code with example usage: obj.init(client, path, date) and returns: um,  pred_date,  trade_date