While the accepted answer seems to be "don't ask" -- the researcher in me wants to improve the corpus of knowledge in the world.

If you were hypothetically providing a quality of service that would genuinely be improved be asking for this information, a way could be as follows:

* Optional
* Checkbox

What's in the dropdown is what makes it interesting: Whereas the 3 major "race" descriptors are serious trigger words, the "**subrace**" descriptors have a level of granularity that makes it more interesting (without using the C, M or N words) and potentially less judgmental. 


      Aryan
      Semitic
      Hamitic
      African Negro
      Khoikhoi
      Melanesian
      Negrito
      Australoid
      Dravida & Sinhalese
      North Mongol
      Chinese & Indochinese
      Japanese & Korean
      Tibetan
      Malay
      Polynesian
      Maori
      Micronesian
      Eskimo
      American

Also this level of granularity, being more technical implies that it will be used for a technical purpose. 

Moreover perhaps while someone is a/antipathetic to listing their race (eg. "don't label me [asian|black|white]"), they may feel a sentiment closer to cultural pride regarding their subrace.

![enter image description here][1]

People are generally obsessed with themselves and may not even know what sub-race they are yet have a curiosity, so in that spirit provide the information.

Also the time to ask is **not** at signup -- that's asking too much for no return. 

The time to as is the first time that the user makes a request to your system for what ever service you provide (diagnosis or whatever). This both:

* confirms that you're asking for technical reasons.
* is asking at a time when a service is expected to be returned.


  [1]: https://i.sstatic.net/lZqcC.png