TuneGridSearchCV only running one trial at a time (not using multiple GPUs and CPUs)

I am trying to tune xgboost hyperparameters using TuneGridSearchCV.

Start ray cluster by:

ray start --temp-dir='/home/ray_dir' --head --port=6379

My Python Code:

import ray
ray.init(address="auto", _temp_dir='/home/ray_dir')

rnd = random.seed(8)
grid_cv = StratifiedKFold(n_splits=3,random_state=rnd, shuffle=True)

from xgboost.callback import EarlyStopping
early_stopping = EarlyStopping(rounds = 50, maximize=True, save_best=True)
clf = xgb.XGBClassifier(
                tree_method='gpu_hist',
                max_bin=512, 
                learning_rate = 0.0001,
                n_estimators=1000,
                objective='binary:logistic', reg_alpha=0.01,
                scale_pos_weight = pos_weight, eval_metric= 'aucpr',
                callbacks=[early_stopping],
                verbosity = 0,
                nthread = 96
                )


param = {
    'eta': [0.01, 0.1, 0.3],
    'min_child_weight': [1,3,8,16],
    'max_depth':[25,50,100,500],
    'colsample_bytree': [0.4,0.6,0.8],
    'subsample': [0.4,0.6,0.8],
    'gamma':[0,0.5,2,10],
}

gs = TuneGridSearchCV (estimator=clf, param_grid=param,  cv=grid_cv, n_jobs = -1, refit=True, return_train_score = True, verbose=3, scoring = 'average_precision', use_gpu = True )

gs.fit(X_train, y_train, eval_set= eval_set_xgboost, verbose=True)

Only one trial is running, and all others are pending (not running parallel)

My machine has 96 CPUs and 8 GPUs. How could I make use of them to faster my code?

Please help to figure out what I am doing wrong.

Ray version: 2.4.0
Python: 3.8.12 or 3.10