Sachverhalt:
A.
Die Staatsanwaltschaft des Kantons Schaffhausen sprach A._ mit Strafbefehl vom 16. September 2016 des Angriffs und der Sachbeschädigung schuldig. Sie auferlegte ihm eine bedingte Geldstrafe von 120 Tagessätzen zu Fr. 30.-- und eine Busse von Fr. 900.--. Die Staatsanwaltschaft warf A._ vor, er sei am 30. Januar 2016 frühmorgens zwischen 02:50 und 02:55 Uhr in der "B._hütte" in Schaffhausen zusammen mit C._, D._ und E._ gegen F._und G._ tätlich vorgegangen. Zudem hätten die Angreifer ein Auto beschädigt.
Am 16. September 2016 stellte die Staatsanwaltschaft ein gegen A._ wegen des Verdachts der einfachen Körperverletzung und der Tätlichkeiten geführtes Verfahren mangels Strafantrag ein. Die Einstellungsverfügung erwuchs in Rechtskraft. Eingestellt wurde zudem das Strafverfahren wegen des Verdachts der Sachbeschädigung.
Nach erfolgter Einsprache gegen den Strafbefehl und Abnahme weiterer Beweise erliess die Staatsanwaltschaft am 27. Februar 2017 einen neuen Strafbefehl. Sie sprach A._ (einzig) des Angriffs schuldig und auferlegte ihm eine bedingte Geldstrafe von 90 Tagessätzen zu Fr. 30.-- und eine Busse von Fr. 700.--. Die Staatsanwaltschaft warf ihm erneut und mit leicht geänderter Begründung vor, sich am 30. Januar 2016 frühmorgens zwischen 02:50 und 02:55 Uhr in der "B._hütte" an einem Angriff beteiligt zu haben. Dabei hätten C._, D._ und E._ den Geschädigten F._gegen Kopf und Rücken geschlagen und am Hals gepackt. Dem eingreifenden G._ hätten A._ und D._ mehrfach die Faust ins Gesicht geschlagen. F._, den einzelne Angreifer zudem mit Gegenständen beworfen hätten, habe eine Schädelprellung und eine Rissquetschwunde am Kopf und G._ Hämatome, Schwellungen und Kratzer im Gesicht und am Körper erlitten.
Auf Einsprache hin verurteilte das Kantonsgericht Schaffhausen A._ am 12. Juli 2017 wegen Raufhandels und erkannte auf eine bedingte Geldstrafe von 60 Tagessätzen zu Fr. 30.-- und eine Busse von Fr. 300.--.
Die dagegen von A._ erhobene Berufung wies das Obergericht des Kantons Schaffhausen am 30. April 2019 ab.
B.
A._ führt Beschwerde in Strafsachen. Er beantragt, das Urteil des Kantonsgerichts sei aufzuheben, und er sei von Schuld und Strafe freizusprechen. Eventualiter sei die Sache zur Neubeurteilung an die Vorinstanz zurückzuweisen.
C.
Das Obergericht beantragt die Abweisung der Beschwerde. Die Staatsanwaltschaft verzichtet auf Vernehmlassung. Der Beschwerdeführer verzichtet auf eine Replik.

Erwägungen:
1.
1.1. Der Beschwerdeführer macht ein Prozesshindernis geltend. Er bringt zusammengefasst vor, die Vorinstanz missachte die Sperrwirkung der rechtskräftigen Teileinstellung und verletze den Grundsatz "ne bis in idem". Das Strafverfahren betreffend Verdacht der Körperverletzung, der Tätlichkeiten und der Sachbeschädigung sei rechtskräftig eingestellt worden. Deshalb hätte das Strafverfahren wegen Angriffs respektive Raufhandels nicht weitergeführt werden dürfen. Beide Vorinstanzen seien von einer einzigen Auseinandersetzung ausgegangen. Die Einstellung vom 16. September 2016 habe sich auf den gleichen Lebenssachverhalt bezogen wie der Strafbefehl vom 27. März 2017 (gemeint: 27. Februar 2017). Es bestehe deshalb Tatidentität. Das Bundesgericht folge in <ref-ruling> dem Prinzip der einfachen Tatidentität. Eine Teileinstellung bei einem einzigen Lebensvorgang scheide aus. Werde ein Verfahren dennoch teilweise rechtskräftig eingestellt, obwohl wie hier kein Raum dafür bestehe, stehe die Sperrwirkung der Teileinstellung einer Verurteilung wegen des gleichen Lebenssachverhalts entgegen (Beschwerde S. 6 ff.).
1.2. Die Vorinstanz gibt in einem ersten Schritt das Urteil 6B_1053/2017 vom 17. Mai 2018 E. 4.1 wieder. Sie erwägt, das Verfahren gegen den Beschwerdeführer wegen Verdachts der einfachen Körperverletzung und der Tätlichkeiten sei am 16. September 2016 mangels Strafantrag rechtskräftig eingestellt worden. Zwar bilde die Auseinandersetzung in der "B._hütte" Grundlage für die Einstellungsverfügung vom 16. September 2016 und den Strafbefehl vom 27. Februar 2017. Es sei von einer einzigen Auseinandersetzung und von Tateinheit auszugehen. Dennoch könne nicht ohne Weiteres auf eine Tatidentität geschlossen werden. Der Vorwurf des Raufhandels umfasse die wechselseitige tätliche Auseinandersetzung, während sich der Vorwurf der Körperverletzung respektive Tätlichkeiten auf die körperlichen Übergriffe beziehe. Mangels klarer bundesgerichtlicher Rechtsprechung sei dem Prinzip der doppelten Identität des Sachverhalts zu folgen. Zur Bestimmung der Tatidentität seien auch die anwendbaren Straftatbestände in die Gesamtwürdigung miteinzubeziehen. Da zwischen der einfachen Körperverletzung und dem Raufhandel echte Konkurrenz bestehe, entfalte der Grundsatz "ne bis in idem" keine Sperrwirkung. Eine Verletzung dieses Grundsatzes liege hier nicht vor (Entscheid S. 5 ff.).
1.3.
1.3.1. Die Staatsanwaltschaft verfügt die vollständige oder teilweise Einstellung des Verfahrens, wenn Prozessvoraussetzungen definitiv nicht erfüllt werden können oder Prozesshindernisse aufgetreten sind (<ref-law>). Eine Teileinstellung kommt grundsätzlich nur in Betracht, wenn mehrere Lebensvorgänge oder Taten im prozessualen Sinne zu beurteilen sind, die einer separaten Erledigung zugänglich sind. Soweit es sich lediglich um eine andere rechtliche Würdigung ein und desselben Lebensvorgangs handelt, scheidet eine teilweise Verfahrenseinstellung aus (<ref-ruling> E. 1.3.1 S. 365 f. mit Hinweisen).
1.3.2. Der Grundsatz "ne bis in idem" ist in <ref-law> geregelt. Er ist auch in Art. 4 des Protokolls Nr. 7 zur EMRK (SR 0.101.07) und in Art. 14 Abs. 7 UNO-Pakt II (SR 0.103.2) verankert und lässt sich direkt aus der Bundesverfassung ableiten (<ref-ruling> E. 2.1 S. 364 f. mit Hinweisen). Wer in der Schweiz rechtskräftig verurteilt oder freigesprochen worden ist, darf wegen der gleichen Straftat nicht erneut verfolgt werden. Eine rechtskräftige Einstellungsverfügung kommt einem freisprechenden Endentscheid gleich (<ref-law>; <ref-ruling> E. 4.2 S. 110). Tatidentität liegt vor, wenn dem ersten und dem zweiten Strafverfahren identische oder im Wesentlichen gleiche Tatsachen zugrunde liegen ("einfache Tatidentität"). Auf die rechtliche Qualifikation dieser Tatsachen kommt es nicht an (<ref-ruling> E. 1.3.2 S. 366 mit Hinweisen; eingehend zur Tatidentität Urteil 6B_1053/2017 vom 17. Mai 2018 E. 4). Das Verbot der doppelten Strafverfolgung stellt ein Verfahrenshindernis dar, das in jedem Verfahrensstadium von Amtes wegen zu berücksichtigen ist (<ref-ruling> E. 1.3.2 S. 366 mit Hinweisen; BRIGITTE TAG, in: Basler Kommentar, Schweizerische Strafprozessordnung, Bd. I, 2. Aufl. 2014, N. 13 zu <ref-law>).
1.4. Dem Beschwerdeführer wirft die Staatsanwaltschaft im Strafbefehl vom 27. Februar 2017 respektive in der Anklage im Wesentlichen vor, er habe sich am 30. Januar 2016 frühmorgens in der "B._hütte" in Schaffhausen an der Seite von C._, D._ und E._ eine tätliche Auseinandersetzung mit F._und G._ geliefert. Dabei habe F._eine Schädelprellung und eine Rissquetschwunde am Kopf und G._ Hämatome, Schwellungen und Kratzer im Gesicht und am Körper erlitten (vorinstanzliche Akten pag. 303 ff.). Die Vorinstanz gelangt zur Überzeugung, dass der Beschwerdeführer G._ mindestens einmal die Faust ins Gesicht schlug und F._eine Schädelprellung und eine Rissquetschwunde erlitt (Entscheid S. 12 ff.).
Gegenstand der Einstellungsverfügung der Staatsanwaltschaft vom 16. September 2016 betreffend Verdacht der einfachen Körperverletzung und Tätlichkeiten bildete die nämliche Auseinandersetzung vom 30. Januar 2016 frühmorgens in der "B._hütte" zwischen den gleichen Kontrahenten (und H._). Die Untersuchung wegen des Vorwurfs, der Beschwerdeführer habe "zusammen mit C._, D._ und E._ die Geschädigten F._, H._ und G._ tätlich angegriffen", wurde mangels Strafantrag nicht weitergeführt (vorinstanzliche Akten pag. 215), nachdem die genannten Geschädigten bereits am 30. Januar 2016 auf einen Strafantrag verzichtet hatten (vorinstanzliche Akten pag. 36 und 38 f.).
Das Geschehen bei der "B._hütte" bildete demnach Grundlage sowohl für die Anklage und den Schuldspruch wegen Raufhandels als auch für die Einstellung wegen einfacher Körperverletzung und Tätlichkeiten. Beide Male handelte es sich um denselben Lebenssachverhalt. Es liegt Täter- und Tatidentität vor.
1.5. Mangels mehrerer Lebensvorgänge oder Taten im prozessualen Sinne verblieb für die Einstellungsverfügung vom 16. September 2016 kein Raum und hätte sie nicht erlassen werden dürfen (im Gegensatz zur Einstellungsverfügung vom 24. Februar 2017 betreffend Sachbeschädigung). Es ging allein darum, die dem Beschwerdeführer zur Last gelegte Tat rechtlich zu würdigen. Während das Bundesgericht im Urteil 6B_1056/2015 vom 4. Dezember 2015 erwog, eine zu Unrecht erfolgte (im bundesgerichtlichen Beschwerdeverfahren nicht angefochtene) Teileinstellungsverfügung könne einem Strafbefehl nicht entgegenstehen, hielt es in <ref-ruling> nicht daran fest. Danach steht die Sperrwirkung einer (mangels Raum für eine Teileinstellung) fehlerhaften aber in Rechtskraft erwachsenen Teileinstellungsverfügung einer Verurteilung wegen des gleichen Lebenssachverhalts entgegen (<ref-ruling> E. 1.4 S. 367 f.). Dies ist hier der Fall. Die Einstellungsverfügung vom 16. September 2016 war nicht nichtig und wurde durch die Nichtanfechtung rechtsgültig.
Die Vorinstanz erwägt, bei echter Gesetzeskonkurrenz der in Frage stehenden Straftatbestände entfalte der Grundsatz "ne bis in idem" keine Sperrwirkung. Die gleiche Argumentation vertritt sie in der Vernehmlassung, indem sie unterstreicht, der Schuldspruch wegen Angriffs konsumiere nicht die Verletzungsdelikte. Ihre Schlussfolgerung trifft nicht zu. Massgebend ist das Vorliegen identischer oder im Wesentlichen gleicher Tatsachen (<ref-ruling> E. 1.3.2 S. 366 mit Hinweisen). Das Konkurrenzverhältnis zwischen den anwendbaren Strafnormen bleibt ohne Bedeutung (Urteil 6B_1053/2017 vom 17. Mai 2018 E. 4 mit Hinweisen). Die Vorinstanz verkennt, dass das Bundesgericht bereits im letztgenannten Urteil der Formulierung des EGMR folgte (Urteil Nr. 14939/03 vom 10. Februar 2009 i.S. Zolotukhin c. Russ ia) und auf im Anschluss daran gefällte Entscheide verwies. Offen liess es (mangels Täteridentität) einzig, ob die zu beurteilenden Verfahren (ein Verfahren wegen Steuerhinterziehung und ein späteres Verfahren wegen Steuerbetrugs) in einem hinreichend engen sachlichen und zeitlichen Konnex standen und die Vorinstanz im Lichte der neueren Rechtsprechung des EGMR zu Recht Tatidentität bejaht hatte.
Nicht wesentlich ist schliesslich der Umstand, dass für den Beschwerdeführer nach den vorinstanzlichen Erwägungen zu keinem Zeitpunkt eine Unsicherheit über die zu erwartende Verurteilung bestand. Die mit der materiellen Rechtskraft einer Einstellungsverfügung verbundene Sperrwirkung erfasst die Tat unter jedem rechtlichen Gesichtspunkt (vgl. <ref-ruling> E. 1.4.3 in fine). Dieses Verfahrenshindernis ist in jedem Verfahrensstadium von Amtes wegen zu berücksichtigen (E. 1.3.2 hievor). Deshalb ist der von der Vorinstanz in ihrer Vernehmlassung neu erhobene Vorwurf, der Beschwerdeführer berufe sich treuwidrig auf den Grundsatz "ne bis in idem", unberechtigt.
1.6. Die Untersuchung jenes Lebensvorgangs, der zur Verurteilung des Beschwerdeführers führte, wurde am 16. September 2016 rechtskräftig eingestellt. Damit konnte der fragliche Lebensvorgang nicht zu einer Verurteilung wegen Raufhandels führen. Dies gilt für die tätliche Auseinandersetzung im Generellen und für die vorgeworfenen Körperverletzungen zu Lasten von F._ im Speziellen, welche die Vorinstanz als objektive Strafbarkeitsbedingung im Sinne von <ref-law> qualifiziert. Es liegt ein Verfahrenshindernis im Sinne von Art. 329 Abs. 1 lit. c und Art. 339 Abs. 2 lit. c StPO vor. Die Vorinstanz hätte das Strafverfahren wegen Raufhandels in Anwendung von Art. 379 in Verbindung mit <ref-law> einstellen müssen. Der vorinstanzliche Schuldspruch verletzt den Grundsatz "ne bis in idem".
2.
Die Beschwerde ist gutzuheissen. Der Entscheid des Obergerichts des Kantons Schaffhausen vom 30. April 2019 ist aufzuheben und die Sache zur neuen Beurteilung an die Vorinstanz zurückzuweisen. Bei diesem Ausgang des Verfahrens sind keine Gerichtskosten zu erheben (Art. 66 Abs. 1 und 4 BGG). Der Kanton Schaffhausen hat dem Beschwerdeführer eine angemessene Parteientschädigung auszurichten (Art. 68 Abs. 1 und 2 BGG). Der vom Beschwerdeführer für das Bundesgerichtsverfahren geltend gemachte Zeitaufwand erscheint mit Blick auf den nach der Aktenlage gebotenen Aufwand überhöht. Sein Anspruch ist praxisgemäss auf Fr. 3'000.-- festzusetzen.

Demnach erkennt das Bundesgericht:
1.
Die Beschwerde wird gutgeheissen. Der Entscheid des Obergerichts des Kantons Schaffhausen vom 30. April 2019 wird aufgehoben und die Sache zur neuen Entscheidung an die Vorinstanz zurückgewiesen.
2.
Es werden keine Kosten erhoben.
3.
Der Kanton Schaffhausen hat dem Beschwerdeführer eine Parteientschädigung von Fr. 3'000.-- zu bezahlen.
4.
Dieses Urteil wird den Parteien und dem Obergericht des Kantons Schaffhausen schriftlich mitgeteilt.
Lausanne, 9. Dezember 2019
Im Namen der Strafrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Denys
Der Gerichtsschreiber: Faga