code: public static AutoML startAutoML(AutoMLBuildSpec buildSpec) {
      Date startTime = new Date();  // this is the one and only startTime for this run
  
      synchronized (AutoML.class) {
        // protect against two runs whose startTime is the same second
        if (lastStartTime != null) {
          while (lastStartTime.getYear() == startTime.getYear() &&
              lastStartTime.getMonth() == startTime.getMonth() &&
              lastStartTime.getDate() == startTime.getDate() &&
              lastStartTime.getHours() == startTime.getHours() &&
              lastStartTime.getMinutes() == startTime.getMinutes() &&
              lastStartTime.getSeconds() == startTime.getSeconds())
            startTime = new Date();
        }
        lastStartTime = startTime;
      }
  
      String keyString = buildSpec.build_control.project_name;
      AutoML aml = AutoML.makeAutoML(Key.<AutoML>make(keyString), startTime, buildSpec);
  
      DKV.put(aml);
      startAutoML(aml);
      return aml;
    }
docs: Instantiate an AutoML object and start it running.  Progress can be tracked via its job().
  
  @param buildSpec
  @return