The CRC is computed while the packet is being transmitted. It is then incorporated into the trailer. The receiver computes the CRC which gets compared with the transmitted one. The CRC is calculated during transmission and appended to the output stream as soon as the last bit goes out onto the wires.
Having CRC in the trailer helps to compute the CRC while transmitting the packet and then splat the final CRC at the end. If we put CRC in the header, it will handle each byte twice, once for checksumming and once for transmitting.
If the CRC is placed in the header, it would be necessary to make a pass over the frame to compute the CRC before transmitting. And placing the CRC at the end of a frame reduces packet latency and reduces hardware buffering requirements. On the transmit side, hardware can read and transmit bytes of the frame immediately. To overcome this problem CRC is generally put in the trailer rather than in the header of the frame.