For cross validation you need to divide your data and use some random part of your data for training and other part of the data for testing and you may do this several times. A popular method is called leave-one-out. Where you divide your data into several chunks and use all except one to train and the last one to test.
This procedure has a single parameter called k that refers to the number of groups that a given data sample is to be split into. As such, the procedure is often called k-fold cross-validation. When a specific value for k is chosen, it may be used in place of k in the reference to the model, such as k=10 becoming 10-fold cross-validation
So in your case following are the steps I recoganized:
1. Split data into 4 groups each having all samples of a given race
2. For each group:
a. Take the group as a test data set
b. Take the remaining groups as a training data set
c. Fit a model on the training set and evaluate it on the test set
Note: I have written considering that since one group will be test set so it won't be used in training data set. I am not able to clearly undertand from your question but if all groups have to be used for training at a time then iterate with each group as a test set.
Also you can refer to algorithms with k-fold cross validation below:
Hope this helps!