text: Title: Getting `ValueError: Hyperopt Section not present in config` while loading hyperopt from YAML config
  Body: **Description**
  
  The code in https://github.com/ludwig-ai/ludwig/blob/7e34450188f1265e6cd9cbda600dc0a605627099/ludwig/hyperopt/run.py#L208 seems to have a bug where its comparing if the HYPEROPT key is contained in the variable `config` - which is actually a string that contains the path to the config file. I believe the original intention was to compare it with `config_dict` 
  
  **To Reproduce**
  
  
  ```
  #hyperopt.py
  from ludwig.hyperopt.run import hyperopt
  import pandas
  
  df = pandas.read_csv('./rotten_tomatoes.csv')
  results = hyperopt(config='./rotten_tomatoes.yaml', dataset=df)
  ```
  Running the above results in the following error: 
  The rottent_tomatoes.csv and rotten_tomatoes.yaml file is as per the tutorial here https://ludwig.ai/latest/getting_started/hyperopt/
  
  ```
  $ python hyperopt.py
  Traceback (most recent call last):
    File "/Users/mohan.krishnan/Workspace/autotrain/hyperopt.py", line 12, in <module>
      results = hyperopt(config='./rotten_tomatoes.yaml', dataset=df)
    File "/Users/mohan.krishnan/Workspace/autotrain/env/lib/python3.10/site-packages/ludwig/hyperopt/run.py", line 209, in hyperopt
      raise ValueError("Hyperopt Section not present in config")
  ValueError: Hyperopt Section not present in config
  ```
  
  
  **Expected behavior**
  The config is correctly parsed without the exception being thrown
  
  
  **Environment:**
  
  - OS:  Mac OS
  - Version 13.6.3
  - Python version : 3.10
  
  